package com.cotton.page.generic;

/**
 * 版权：
 * 功能：所有自定义Dao的顶级接口, 封装常用的增删查改操作,
 * 可以通过Mybatis Generator Maven 插件自动生成Dao,
 * 也可以手动编码,然后继承GenericDao 即可.
 * Model : 代表数据库中的表 映射的Java对象类型
 * PK :代表对象的主键类型
 * 作者：朱伟峰
 * 邮箱：zhuweifeng24@gmail.com
 * 日期：2015年12月2日
 */
public interface GenericDao<Model, PK>
{
	/**
	 * 插入对象
	 * 
	 * @param model
	 *            对象
	 */
	int insertSelective(Model model);

	/**
	 * 更新对象
	 * 
	 * @param model
	 *            对象
	 */
	int updateByPrimaryKeySelective(Model model);

	/**
	 * 通过主键, 删除对象
	 * 
	 * @param id
	 *            主键
	 */
	int deleteByPrimaryKey(PK id);

	/**
	 * 通过主键, 查询对象
	 * 
	 * @param id
	 *            主键
	 * @return
	 */
	Model selectByPrimaryKey(PK id);

}
